home *** CD-ROM | disk | FTP | other *** search
/ MacTech 1 to 12 / MacTech-vol-1-12.toast / Tools / HexEdit 1.0.7 ƒ / HexEditSource / Source / AboutBox.c next >
Text File  |  1993-12-11  |  1KB  |  70 lines

  1. /************************************************************************************
  2.  * AboutBox.c
  3.  *
  4.  * from HexEdit, a simple hex editor
  5.  * copyright 1993, Jim Bumgardner
  6.  *
  7.  ************************************************************************************/
  8.  
  9. #include "HexEdit.h"
  10.  
  11. pascal    Boolean MyAboutFilter ( DialogPtr, EventRecord *, short *);
  12. long    gStartTime;
  13.  
  14. #define AboutDLOG        130
  15. #define AutoCloseTime    5*60
  16.  
  17. HexEditAboutBox()
  18. {
  19.     GrafPtr            savePort;
  20.     DialogPtr        dp;
  21.     short            itemHit;
  22.     VersRecHndl        vr;
  23.     StringPtr        myVersStr;
  24.     
  25.     if ((vr = (VersRecHndl) GetResource('vers',1)) != NULL) {
  26.         HLock((Handle) vr);
  27.         myVersStr = (StringPtr) (((unsigned long) &(**vr).shortVersion[1]) + 
  28.                           ((**vr).shortVersion[0]));
  29.     }
  30.     else
  31.         myVersStr = "\p???";
  32.  
  33.     ParamText(myVersStr,"\p","\p","\p");
  34.     
  35.     GetPort(&savePort);
  36.     dp = GetNewDialog(AboutDLOG, NULL, (WindowPtr) -1L);
  37.     gStartTime = TickCount();
  38.     ModalDialog(MyAboutFilter, &itemHit);
  39.     DisposeDialog(dp);
  40.     SetPort(savePort);
  41.     if (vr) {
  42.         HUnlock((Handle) vr);
  43.         ReleaseResource((Handle) vr);
  44.     }
  45. }
  46.  
  47. pascal Boolean MyAboutFilter(DialogPtr dp, EventRecord *ep, short *itemHit)
  48. {
  49.     char tempChar;
  50.     switch (ep->what) {
  51.       case mouseDown:        // For About Box - trap all events.
  52.       case keyDown:
  53.       case autoKey:
  54.           return true;
  55.         break;
  56.       case updateEvt:
  57.           SetPort(dp);
  58.           TextFont(1);
  59.           TextSize(9);
  60.         break;
  61.       case nullEvent:
  62.           if (TickCount() - gStartTime > AutoCloseTime)
  63.               return true;
  64.       default:
  65.           break;
  66.  
  67.     }
  68.     return false;
  69. }
  70.